home *** CD-ROM | disk | FTP | other *** search
/ The Photo Companion / PCD1501 (Track 1).bin / merged.iso / pmorph2 / setup.mst < prev    next >
Encoding:
Text File  |  1996-03-07  |  12.0 KB  |  419 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG        '' debug flag
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'mscpydis.inc'    ''System
  9. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST APPHELP       = 900
  19. CONST CHECK         = 2500
  20. CONST SMALLWIN      = 2200
  21. CONST RESTART       = 2600
  22. CONST RESTARTII     = 2700
  23. CONST BADPATH       = 6400
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. '' space needed for PhotoMorph installation (3 Mb)
  29. CONST PM2DISK    = 3072
  30. GLOBAL DiskSpace&
  31. GLOBAL SizeReq&  '' Total Disk Size required for installation
  32.  
  33. GLOBAL SrcDir$
  34. GLOBAL PMODEST$
  35.  
  36. ''File Types
  37. GLOBAL WinDir$
  38. GLOBAL WinSysDir$
  39. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  40. GLOBAL CHECKSTATES$
  41.  
  42. DECLARE SUB Install
  43. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  44. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  45. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  46. DECLARE SUB Reboot LIB "iniupd.dll"
  47. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  48.  
  49. INIT:
  50.  
  51.     CUIDLL$ = "mscuistf.dll"            '' Custom user interface dll
  52.     NCSCUI$ = "ncscui.dll"                '' NCS CUI dll
  53.     HELPPROC$ = "FHelpDlgProc"          '' Help dialog procedure
  54.     
  55.     WIN32ENABLED% = 0
  56.     MajorVer% = GetWindowsMajorVersion()
  57.     MinorVer% = GetWindowsMinorVersion()
  58.  
  59.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  60.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  61.         END
  62.     END IF
  63.  
  64.     IF OnWindowsNT() THEN
  65.         i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  66.         END
  67.     END IF
  68.  
  69. ''    check disk space
  70. ''    DiskSpace& = GetFreeSpaceForDrive(PMODEST$)
  71. ''    IF DiskSpace& < PM2DISK then
  72. ''        i% = DoMsgBox("This disk does not have sufficient space to Install PhotoMorph, 3MB is required.", "Insufficient Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  73. ''        END
  74. ''    END IF
  75.  
  76.     SetBitmap NCSCUI$, LOGO
  77.     SetTitle "PhotoMorph 2"
  78.  
  79.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  80.     IF szInf$ = "" THEN
  81.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  82.     END IF
  83.     ReadInfFile szInf$
  84.  
  85.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  86.  
  87. WELCOME1:
  88.  
  89.     sz$ = UIStartDlg(NCSCUI$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  90.     IF sz$ = "CONTINUE" THEN
  91.         UIPop 1
  92.     ELSE
  93.         GOSUB NCSASKQUIT
  94.         GOTO WELCOME1
  95.     END IF
  96.  
  97. '' Get PhotoMorph Directory
  98.     PMODEST$ = "C:\PMORPH2"
  99.     GOSUB GETPATH
  100.  
  101. '' Prepare Copy list and check size
  102.  
  103.     ClearCopyList
  104.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  105.     WinDir$ = GetWindowsDir()
  106.     DEST$ = GetWindowsDir()
  107.     WinSysDir$ = GetWindowsSysDir()
  108.  
  109. ''  Runtime files (on Windows disk)
  110.  
  111.     AddSectionFilesToCopyList "Delete Files", SrcDir$, PMODEST$
  112.     AddSectionFilesToCopyList "PhotoMorph 2 Program", SrcDir$, PMODEST$
  113.     AddSectionFilesToCopyList "PhotoMorph 2 Projects", SrcDir$, PMODEST$
  114.     AddSectionFilesToCopyList "PhotoMorph 2 Images", SrcDir$, PMODEST$
  115.  
  116. ''  Check windrive diskspace
  117.     SizeReq& = GetCopyListCost ("","", "")
  118.     IF SizeReq& <> 0 THEN
  119.         i% = DoMsgBox("This disk does not have sufficient space to Install PhotoMorph, 3MB is required.", "Insufficient Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  120.         END
  121.     END IF
  122.  
  123.     CopyFilesInCopyList
  124.  
  125.     CreateProgmanGroup "PhotoMorph 2", "", cmoNone
  126.     ShowProgmanGroup   "PhotoMorph 2",  1, cmoNone
  127.  
  128.     CreateProgmanItem "PhotoMorph 2", "PhotoMorph 2", PMODEST$ + "\pmorph.exe ", "", cmoOverwrite
  129.     CreateProgmanItem "PhotoMorph 2", "Read Me", PMODEST$ + "\readme.wri ", "", cmoOverwrite
  130.  
  131. '' Starting Video For Windows Installation Here...
  132.  
  133.     SetBitmap CUIDLL$, LOGO
  134.     SetTitle "Video For Windows 1.1A"
  135.  
  136. WELCOME:
  137.  
  138.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  139.     IF sz$ = "CONTINUE" THEN
  140.        UIPop 1
  141.     ELSE
  142.  
  143.         '' Get the PhotoMorph Files on the second disk
  144.         ClearCopyList
  145.         AddSectionFilesToCopyList "PM Disk 2", SrcDir$, PMODEST$
  146.         CopyFilesInCopyList
  147.  
  148.         GOSUB ASKQUIT
  149.         GOTO WELCOME
  150.     END IF
  151.  
  152. ''Prepare Copy list and check size
  153.  
  154.     ClearCopyList
  155.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  156.     WinDir$ = GetWindowsDir()
  157.     DEST$ = GetWindowsDir()
  158.     WinSysDir$ = GetWindowsSysDir()
  159.     
  160.     '' Make sure we get the VFW files on disk 1 first
  161.     AddSectionFilesToCopyList "VFW Disk 1",  SrcDir$, WinSysDir$
  162.  
  163. ''  Check windrive diskspace
  164.     SizeReq& = GetCopyListCost ("","", "")
  165.     IF SizeReq& <> 0 THEN
  166.         GOSUB SMALLWIN
  167.         END
  168.     END IF
  169.     CopyFilesInCopyList
  170.  
  171.     ClearCopyList
  172.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  173.     AddSectionFilesToCopyList "OLE2",         SrcDir$, WinSysDir$
  174.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  175.     AddSectionFilesToCopyList "MPlayer",     SrcDir$, WinDir$
  176.     AddSectionFilesToCopyList "AVICodecs",     SrcDir$, WinSysDir$
  177.     AddSectionFilesToCopyList "Indeo-ini",     SrcDir$, WinDir$
  178.  
  179. ''  Check windrive diskspace
  180.     SizeReq& = GetCopyListCost ("","", "")
  181.     IF SizeReq& <> 0 THEN
  182.         GOSUB SMALLWIN
  183.         END
  184.     END IF
  185.  
  186. Install
  187.  
  188. '' Restart Windows: if it has to update ACM from DOS, it restarts Windows 
  189. '' automatically else, it gives the user the choice.
  190.  
  191.     RESTRT% = RestartListEmpty ()
  192.     Exe$ = DEST$ + "\_msrstrt.exe"
  193.     Batch$ = DEST$ + "\_mssetup.bat"
  194.     empty$ = ""
  195.  
  196. RESTART:
  197.  
  198.     IF RESTRT% = 0 THEN
  199.         sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  200.         IF sz$ = "REACTIVATE" THEN
  201.             GOTO RESTART
  202.         ENDIF
  203.         I% = ExitExecRestart ()
  204.         RemoveFile Exe$, cmoForce
  205.         RemoveFile Batch$, cmoForce
  206.         END
  207.     ELSE
  208.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  209.         IF sz$ = "CONTINUE" THEN
  210.             I% = ExitWindowsExec (Exe$, empty$)
  211.             IF I% = 0 THEN
  212.                 GOTO RESTART
  213.             ELSE
  214.                 END
  215.             ENDIF
  216.         ELSEIF sz$ = "EXIT" THEN
  217.             UIPopAll
  218.             END
  219.         ELSEIF sz$ = "REACTIVATE" THEN
  220.             GOTO RESTART
  221.         ELSE
  222.             UIPop 1
  223.         END IF
  224.     END IF
  225.  
  226. QUIT:
  227.  
  228.     ON ERROR GOTO ERRQUIT
  229.  
  230.     IF ERR = 0 THEN
  231.         dlg% = EXITSUCCESS
  232.     ELSEIF ERR = STFQUIT THEN
  233.         dlg% = EXITQUIT
  234.     ELSE
  235.         dlg% = EXITFAILURE
  236.     END IF
  237.  
  238. QUITL1:
  239.  
  240.     sz$ = UIStartDlg(NCSCUI$, dlg%, "FInfo0DlgProc", 0, "")
  241.     IF sz$ = "REACTIVATE" THEN
  242.         GOTO QUITL1
  243.     END IF
  244.     UIPop 1
  245.     END
  246.  
  247. ERRQUIT:
  248.  
  249.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  250.     END
  251.  
  252. ASKQUIT:
  253.  
  254.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  255.  
  256.     IF sz$ = "EXIT" THEN
  257.         UIPopAll
  258. ''        ERROR STFQUIT
  259.         END
  260.     ELSEIF sz$ = "REACTIVATE" THEN
  261.         GOTO ASKQUIT
  262.     ELSE
  263.         UIPop 1
  264.     END IF
  265.     RETURN
  266.  
  267. SMALLWIN:
  268.  
  269.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  270.     IF sz$ = "REACTIVATE" THEN
  271.         GOTO SMALLWIN
  272.     END IF
  273.     UIPop 1
  274.     RETURN
  275.  
  276. '**
  277. '** Purpose:
  278. '**     Performs all installation operations.
  279. '** Arguments:
  280. '**     none.
  281. '** Returns:
  282. '**     none.
  283. '*************************************************************************
  284. SUB Install STATIC
  285.  
  286.     SetRestartDir WinDir$
  287.     CopyFilesInCopyList
  288.  
  289.     '' Get the PhotoMorph Files on the second disk
  290.     ClearCopyList
  291.     AddSectionFilesToCopyList "PM Disk 2", SrcDir$, PMODEST$
  292.     CopyFilesInCopyList
  293.  
  294. ''Updating WIN.INI and SYSTEM.INI
  295.     IF VflatdPresent() = 0 THEN
  296.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  297.     END IF
  298.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  299.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  300.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  301.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  302.     I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21")
  303.     IF I% = 0  THEN
  304.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  305.     END IF
  306.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  307.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  308.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  309.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  310.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  311.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  312.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  313.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  314.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  315.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  316.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  317.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  318.  
  319. '' Mplayer
  320.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  321.  
  322.     Run ("profdisp.exe")   
  323.  
  324. END SUB
  325.  
  326. '**
  327. '** Purpose:
  328. '**     Appends a file name to the end of a directory path,
  329. '**     inserting a backslash character as needed.
  330. '** Arguments:
  331. '**     szDir$  - full directory path (with optional ending "\")
  332. '**     szFile$ - filename to append to directory
  333. '** Returns:
  334. '**     Resulting fully qualified path name.
  335. '*************************************************************************
  336. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  337.     IF szDir$ = "" THEN
  338.         MakePath = szFile$
  339.     ELSEIF szFile$ = "" THEN
  340.         MakePath = szDir$
  341.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  342.         MakePath = szDir$ + szFile$
  343.     ELSE
  344.         MakePath = szDir$ + "\" + szFile$
  345.     END IF
  346. END FUNCTION
  347.  
  348. GETPATH:
  349.     SetSymbolValue "EditTextIn", PMODEST$
  350.     SetSymbolValue "EditFocus", "END"
  351. GETPATHL1:
  352.     sz$ = UIStartDlg(NCSCUI$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  353.  
  354.     IF sz$ = "CONTINUE" THEN
  355.         olddest$ = PMODEST$
  356.         PMODEST$ = GetSymbolValue("EditTextOut")
  357.  
  358.         ''Validate new path.
  359.         IF IsDirWritable(PMODEST$) = 0 THEN
  360.             GOSUB BADPATH
  361.             GOTO GETPATHL1
  362.         END IF
  363.         UIPop 1
  364.  
  365.         ''Truncate display if too long.
  366. ''        IF LEN(DEST$) > 23 THEN
  367. ''            ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  368. ''        ELSE
  369. ''            ReplaceListItem DRIVETEXT$, 7, DEST$
  370. ''        END IF
  371.  
  372.         ''Recalc if path changed.
  373.         IF (olddest$ <> PMODEST$) AND (olddest$ <> PMODEST$+"\") AND (olddest$+"\" <> PMODEST$) THEN
  374. ''          RecalcPath
  375. ''          SetDriveStatus
  376.         END IF
  377.  
  378.         olddest$ = ""
  379. ''        GOTO CUSTINST
  380.         RETURN
  381.     ELSEIF sz$ = "REACTIVATE" THEN
  382. ''        RecalcPath
  383. ''        SetDriveStatus
  384. ''        GOTO GETPATHL1
  385.         RETURN
  386.     ELSEIF sz$ = "EXIT" THEN
  387.         GOSUB NCSASKQUIT
  388.         GOTO GETPATHL1
  389.     ELSE
  390.         UIPop 1
  391.         RETURN
  392. ''        GOTO CUSTINST
  393.     END IF
  394.  
  395.     RETURN
  396.  
  397. BADPATH:
  398.     sz$ = UIStartDlg(NCSCUI$, BADPATH, "FInfo0DlgProc", 0, "")
  399.     IF sz$ = "REACTIVATE" THEN
  400. ''        RecalcPath
  401. ''        SetDriveStatus
  402.         GOTO BADPATH
  403.     END IF
  404.     UIPop 1
  405.     RETURN
  406.  
  407. NCSASKQUIT:
  408.     sz$ = UIStartDlg(NCSCUI$, ASKQUIT, "FQuitDlgProc", 0, "")
  409.  
  410.     IF sz$ = "EXIT" THEN
  411.         UIPopAll
  412.         ERROR STFQUIT
  413.     ELSEIF sz$ = "REACTIVATE" THEN
  414.         GOTO NCSASKQUIT
  415.     ELSE
  416.         UIPop 1
  417.     END IF
  418. RETURN
  419.